
//1.二级指针
// #include<stdio.h>

// int main()
// {
//     int a = 10;
//     printf("%d\n",a);

//     int *pa = &a;
//     *pa = 20;
//     printf("%d\n",a);

//     int* *ppa = &pa;
//     **ppa = 30;
//     printf("%d\n",a);

//     return 0;
// }

//2.指针数组

//#include<stdio.h>
//示例1
// int main()
// {
//     int a = 0,b = 0,c = 0,d = 0,e = 0;
//     int* arr[] = {&a,&b,&c,&d,&e};
//     int sz = sizeof(arr)/sizeof(arr[0]);

//     for(int i = 0;i<sz;++i)
//     {
//         *(arr[i]) = i+1;
//         printf("%d\n",*(arr[i]));
//     }
//     return 0;
// }

//示例2 -- 模拟实现二维数组3行4列
// #include<stdio.h>

// int main()
// {
//     int arr1[] = {1,2,3,4};
//     int arr2[] = {5,6,7,8};
//     int arr3[] = {9,10,11,12};

//     int* arr[] = {arr1,arr2,arr3};//初始化，[]别掉了
//     for(int i = 0;i<3;++i)
//     {
//         for(int j = 0;j<4;++j)
//         {
//             printf("%d ",arr[i][j]);//arr[i]找到第i+1的数组名，再[j]找到第j+1个元素
//         }
//         printf("\n");
//     }
//     return 0;
// }


//结构体
//1.结构体生命，结构体变量的定义，初始化，输出，输入
// #include<stdio.h>

// struct Stu 
// {
//     char name[20];
//     int age;
//     char sex[10];
//     int num;
// };
//姓名，年龄，性别，学号

// int main()
// {
//     struct Stu stu1 = {"张三",18,"保密",202103008};//定义并初始化
//     printf("%s %d %s %d\n",stu1.name,stu1.age,stu1.sex,stu1.num);//输出结构体变量

//     struct Stu stu2;
//     scanf("%s %d %s %d",stu2.name,&stu2.age,stu2.sex,&stu2.num);//输入结构体变量的值
//     printf("%s %d %s %d\n",stu2.name,stu2.age,stu2.sex,stu2.num);
//     return 0;
// }

//2.结构体传参


// #include<stdio.h>

// struct Stu 
// {
//     char name[20];
//     int age;
//     char sex[10];
//     int num;
// };

// void print1(struct Stu s)
// {  
//     printf("%s %d %s %d\n",s.name,s.age,s.sex,s.num);
// }

// void print2(struct Stu* ps)
// { 
//     printf("%s %d %s %d\n",(*ps).name,(*ps).age,(*ps).sex,(*ps).num);
//     printf("%s %d %s %d\n",ps->name,ps->age,ps->sex,ps->num);
// }

// int main()
// {
//     struct Stu s1 = {"张三",40,"男",19230};
//     print1(s1);
//     print2(&s1);
//     return 0;
// }

//1.喝水例题
// #include<stdio.h>

// int main()
// {
//     int money = 0;
//     scanf("%d",&money);

//     int sum = 0;//记录总共喝喝的水的数量
//     int count = 0;//记录当前的水的数量
//     int emp_bot = 0;//记录空瓶的数量

//     count = money/2;//2块钱一瓶水

//     do
//     {
//         sum += count;//把水喝了
//         emp_bot += count;//还剩下的空瓶

//         count = emp_bot / 2;//空瓶换的水
//         emp_bot = emp_bot % 2;//换水之后还剩的空瓶
        
//     }while(count);//当用空瓶换不了水的时候，就结束

    

//     printf("总共喝了%d瓶水\n",sum);
//     return 0;
// }

// #include<stdbool.h>

// #include<stdio.h>

// bool is_inverted_triangle(int n,int arr[n][n])//想让变长数组作为参数上传给数组，要先传数组大小的参数，再传数组
// {
//     for(int i =  0;i<n;++i)
//     {
//         for(int j = 0;j<i;++j)//不取等于i的时候
//         {
//             if(arr[i][j] != 0)//错误的情况
//             {
//                 return false;
//             }
//         }
//     }

//     return true;
// }

// int main()
// {
//     int n = 0;
//     scanf("%d",&n);

//     int arr[n][n];

//     for(int i = 0;i<n;++i)
//     {
//         for(int j = 0;j<n;++j)
//         {
//             scanf("%d",&arr[i][j]);
//         }
//     }

//     if(is_inverted_triangle(n,arr))//把数组名和n阶方阵大小传过去
//     {
//         printf("YES\n");
//     }
//     else
//     {
//         printf("NO\n");
//     }
//     return 0;
// }

// #include<stdio.h>
// #include<stdbool.h>

// void scan_arr(int n,int m,int arr[n][m])
// {
//     for(int i = 0;i<n;++i)
//     {
//         for(int j = 0;j<m;++j)
//         {
//             scanf("%d",&arr[i][j]);
//         }
//     }
// }

// bool equal_matrix(int n,int m,int a[n][m],int b[n][m])
// {
//     for(int i = 0;i<n;++i)
//     {
//         for(int j = 0;j<m;++j)
//         {
//             if(a[i][j] != b[i][j])
//             {
//                 return false;
//             }
//         }
//     }

//     return true;
// }

// int main()
// {
//     int n = 0,m = 0;//n行m列矩阵
//     scanf("%d %d",&n,&m);

//     int arr1[n][m];
//     int arr2[n][m];

//     scan_arr(n,m,arr1);
//     scan_arr(n,m,arr2);

//     if(equal_matrix(n,m,arr1,arr2))
//     {
//         printf("Yes\n");
//     }
//     else
//     {
//         printf("No\n");
//     }

//     return 0;
// }

// #include<stdio.h>

// int main()
// {
//     int money = 0;
//     scanf("%d",&money);

//     int total = 0,empty = 0;//total--记录总共喝了多少瓶水，empty记录空瓶数量
//     total = money;
//     empty = total;

//     do
//     {
//         total += empty/2;
//         empty = empty/2 + empty%2;//empty/2就是这次喝掉的水，empty%2就是上次剩下的空瓶
//     }while(empty > 1);

//     printf("total = %d\n",total);
//     return 0;
// }

//#include<string.h>
#include<stdio.h>
// int main()
// {
//     char pwd[20],user[20];
//     scanf("%s %s",pwd,user);

//     if(strcmp(pwd,user) == 0)
//     {
//         printf("same\n");
//     }
//     else
//     {
//         printf("different\n");
//     }
//     return 0;
// }

// int main()
// {
//     int score[10] = {0};
//     for(int i = 0;i < 10;++i)
//     {
//         scanf("%d",&score[i]);
//         printf("%d ",score[i]);
//     }

//     return 0;
// }

// void scan_arr(int* arr,int n)
// {
//     for(int i = 0;i<n;++i)
//     {
//         scanf("%d",&arr[i]);
//     }
// }

// void reverse_print(int* arr, int n)
// {
// 	for (int i = n - 1; i >= 0; --i)
// 	{
// 		printf("%d ", arr[i]);
// 	}
// }

// int main()
// {
//     int arr[10] = {0};

//     scan_arr(arr,10);

//     reverse_print(arr,10);
//     return 0;
// }

// int main()
// {
//     int arr[10] = {0};

//     int p_count = 0;
//     int n_count = 0;

//     for(int i = 0;i<10;++i)
//     {
//         scanf("%d",&arr[i]);
//         if(arr[i] > 0)
//         {
//             ++p_count;
//         }
//         else if(arr[i] < 0)
//         {
//             ++n_count;
//         }
//     }

//     printf("positive:%d\n",p_count);
//     printf("negative:%d\n",n_count);

//     return 0;
// }

// int main()
// {
//     int n = 0;
//     scanf("%d",&n);
//     int arr[n];

//     int sum = 0;

//     for(int i = 0;i<n;++i)
//     {
//         scanf("%d",&arr[i]);
//         sum += arr[i];
//     }

//     printf("%d\n",sum);
//     return 0;
// }

// int main()
// {
//     int n = 0;
//     scanf("%d",&n);

//     int arr[n];
//     for(int i = 0;i<n;++i)
//     {
//         scanf("%d",&arr[i]);
//     }

//     int max = arr[0];
//     int min = arr[0];

//     for(int i = 0;i<n;++i)
//     {
//         if(arr[i] > max) max = arr[i];
//         if(arr[i] < min) min = arr[i];
//     }

//     printf("%d\n",max - min);
//     return 0;
// }

//#include<stdbool.h>
// bool is_sorted(int* arr,int n)
// {
//     if(arr[0] > arr[1])//判断降序的情况
//     {
//         for(int i = 1;i<n;++i)
//         {
//             if(arr[i-1] < arr[i])
//             {
//                 return false;
//             }
//         }
//     }
//     else//判断升序的情况
//     {
//         for(int i = 1;i<n;++i)
//         {
//             if(arr[i-1] > arr[i])
//             {
//                 return false;
//             }
//         }
//     }
    

//     return true;
// }

// int main()
// {
//     int n = 0;
//     scanf("%d",&n);

//     int arr[n];
//     for(int i = 0;i<n;++i)
//     {
//         scanf("%d",&arr[i]);
//     }

//     if(is_sorted(arr,n))
//     {
//         printf("sorted\n");
//     }
//     else
//     {
//         printf("unsorted\n");
//     }
//     return 0;
// }

// int Find(int* arr,int n,int num)
// {
//     for(int i = 0;i<n;++i)
//     {
//         if(arr[i] >= num)//找到了
//         {
//             return i;
//         }
//     }

//     return n;//没找到就在最后面插入
// }

// void Insert(int* arr,int sz,int num,int index)
// {
//     int end = sz;
//     while(end > index)
//     {
//         arr[end] = arr[end-1];
//         --end;
//     }
//     arr[end] = num;
// }

// void print_arr(int *arr,int sz)
// {
//     for(int i = 0;i<sz;++i)
//     {
//         printf("%d ",arr[i]);
//     }
// }

// int main()
// {
//     int n = 0;
//     scanf("%d",&n);
//     int arr[n+1];

//     for(int i = 0;i<n;++i)
//     {
//         scanf("%d",&arr[i]);
//     }

//     int num = 0;
//     scanf("%d",&num);

//     //1.找需要插入的位置
//     int index = Find(arr,n,num);//传大小n即可

//     //2.挪动插入数据
//     Insert(arr,n+1,num,index);

//     //3.打印数据
//     print_arr(arr,n+1);
    
//     return 0;
// }